home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 40 / Amiga Format CD40 (1999-05-11)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-06].iso / -readerstuff- / malcolm_campbell / source / loto98.b < prev    next >
Text File  |  1999-03-27  |  32KB  |  1,327 lines

  1. {* 
  2. ** Welcome to the LoTo98 source code, this
  3. ** file is the main part of the source. By
  4. ** the way, this is writen in ACE Basic v2.
  5. ** In order to compile this program, you'll
  6. ** need ACE Basic fully installed, with all
  7. ** the appropriate assigns. You'll also
  8. ** need Module.o in the module path.
  9. **
  10. ** This source is for my program called LoTo98,
  11. ** it hasn't got any comments but if you have
  12. ** any questions about it, them write to me:
  13. **
  14. ** Malcolm Campbell <malcolm@workmail.com>
  15. ** Last changed:    28/2/1999
  16. *}
  17.  
  18. DECLARE SUB _MAIN
  19. DECLARE SUB _QUIT EXTERNAL
  20. DECLARE SUB _WIPE EXTERNAL
  21. DECLARE SUB _WIPE1 EXTERNAL
  22. DECLARE SUB _WIPE2 EXTERNAL
  23. DECLARE SUB _MENU
  24. DECLARE SUB _MENU1 EXTERNAL
  25. DECLARE SUB _LOGO(X1,Y1,X2,Y2) EXTERNAL
  26. DECLARE SUB _BOTCLEAR
  27. DECLARE SUB _WINDOW
  28. DECLARE SUB _REMOVE EXTERNAL
  29. DECLARE SUB _REMOVE1 EXTERNAL
  30. DECLARE SUB _REMOVE2 EXTERNAL
  31. DECLARE SUB _ABOUT
  32. DECLARE SUB _NUMBER
  33. DECLARE SUB _NUMBER1
  34. DECLARE SUB _RANDOM
  35. DECLARE SUB _RANDOM1(TEMP)
  36. DECLARE SUB _BUTTON EXTERNAL
  37. DECLARE SUB _BUTTON1(NN)
  38. DECLARE SUB _BUTTON2
  39. DECLARE SUB _BUTTON3
  40. DECLARE SUB _BUTTON4(XY)
  41. DECLARE SUB _BUTTON5
  42. DECLARE SUB _BUTTON6 EXTERNAL
  43. DECLARE SUB _BUTTON7 EXTERNAL
  44. DECLARE SUB _BUTTON8 EXTERNAL
  45. DECLARE SUB _BUTTON9 EXTERNAL
  46. DECLARE SUB _BUTTON10
  47. DECLARE SUB _BUTTON11 EXTERNAL
  48. DECLARE SUB _BUTTON12 EXTERNAL
  49. DECLARE SUB _BUTTON13 EXTERNAL
  50. DECLARE SUB _PRINTER1(TEMP)
  51. DECLARE SUB _COMPUTE(NUM)
  52. DECLARE SUB _COMPUTE1(NUM)
  53. DECLARE SUB _COMPUTE2(NUM)
  54. DECLARE SUB _CONCALC(NN)
  55. DECLARE SUB _DATABASE(TEMP)
  56. DECLARE SUB _DATABASE1(TEMP)
  57. DECLARE SUB _DATABASE2
  58. DECLARE SUB _DATABASE4
  59. DECLARE SUB _PERCENT(X1,Y1,A1,A2,PR) EXTERNAL
  60. DECLARE SUB _CONVERT(A) EXTERNAL
  61. DECLARE SUB _CONVERT1(A) EXTERNAL
  62. COMMON B$
  63. GLOBAL BC1
  64. GLOBAL BC2
  65. GLOBAL BC3
  66. GLOBAL BC4
  67. GLOBAL BC5
  68. BC1=0
  69. BC2=0
  70. BC3=0
  71. BC4=0
  72. BC5=0
  73. GLOBAL T
  74. COMMON A6
  75. GLOBAL Z$
  76. RANDOMIZE TIMER
  77. DIM Z1(8)
  78. DIM Y1(8)
  79. DIM B(36)
  80. DIM B1$(36)
  81. DIM ED$(6)
  82. DIM C$(5)
  83. DIM BOTS(70)
  84. CALL _MAIN
  85. SUB _CONCALC(NN)
  86.   IF NN = 1 THEN
  87.     BC1=2
  88.     BC2=3
  89.     BC3=4
  90.     BC4=5
  91.     BC5=6
  92.     EXIT SUB
  93.   END IF
  94.   IF NN = 2 THEN
  95.     BC1=1
  96.     BC2=3
  97.     BC3=4
  98.     BC4=5
  99.     BC5=6
  100.     EXIT SUB
  101.   END IF
  102.   IF NN = 3 THEN
  103.     BC1=1
  104.     BC2=2
  105.     BC3=4
  106.     BC4=5
  107.     BC5=6
  108.     EXIT SUB
  109.   END IF
  110.   IF NN = 4 THEN
  111.     BC1=1
  112.     BC2=2
  113.     BC3=3
  114.     BC4=5
  115.     BC5=6
  116.     EXIT SUB
  117.   END IF
  118.   IF NN = 5 THEN
  119.     BC1=1
  120.     BC2=2
  121.     BC3=3
  122.     BC4=4
  123.     BC5=6
  124.     EXIT SUB
  125.   END IF
  126.   IF NN = 6 THEN
  127.     BC1=1
  128.     BC2=2
  129.     BC3=3
  130.     BC4=4
  131.     BC5=5
  132.     EXIT SUB
  133.   END IF
  134. END SUB
  135. SUB _PRINTER1(TEMP)
  136.   SHARED Z1()
  137.   IF MSGBOX ("Sure you want to print?","Print","Cancel") THEN
  138.     ERRZ=ERR
  139.     OPEN "O",#6,"PRT:"
  140.       IF ERR<>0 THEN EXIT SUB
  141.       PRINT #6,""
  142.       IF ERR<>0 THEN EXIT SUB
  143.       PRINT #6,"O------------------------------------------------------------------O"
  144.       IF ERR<>0 THEN EXIT SUB 
  145.       PRINT #6,"| LOTO";"98";" - The Lottery Predictor And Checker Program From TickSoft |"
  146.       IF ERR<>0 THEN EXIT SUB 
  147.       PRINT #6,"| Web: www.ticksoft.free-online.co.uk email: ticksoft@workmail.com |
  148.       IF ERR<>0 THEN EXIT SUB 
  149.       PRINT #6,"O------------------------------------------------------------------O
  150.       IF ERR<>0 THEN EXIT SUB 
  151.       PRINT #6,""
  152.       IF ERR<>0 THEN EXIT SUB
  153.       IF TEMP = 1 THEN 
  154.         PRINT #6,"The numbers last drawn were:";Z1(1);Z1(2);Z1(3);Z1(4);Z1(5);Z1(6);"BONUS";Z1(7)
  155.         IF ERR<>0 THEN EXIT SUB 
  156.       END IF
  157.       IF TEMP = 2 THEN
  158.         PRINT #6,"The numbers generated for ";Z$;" are:";Z1(1);Z1(2);Z1(3);Z1(4);Z1(5);"AND";Z1(6)
  159.         IF ERR<>0 THEN EXIT SUB
  160.       END IF
  161.       IF TEMP = 3 THEN
  162.         PRINT #6,"The numbers used by ";Z$;" are:";Z1(1);Z1(2);Z1(3);Z1(4);Z1(5);"AND";Z1(6)
  163.         IF ERR<>0 THEN EXIT SUB
  164.       END IF
  165.       IF TEMP = 4 THEN
  166.         PRINT #6,"The TickSoft winware form for LoTo98"
  167.         IF ERR<>0 THEN EXIT SUB
  168.         PRINT #6,"===================================="
  169.         IF ERR<>0 THEN EXIT SUB
  170.         PRINT #6,""
  171.         IF ERR<>0 THEN EXIT SUB
  172.         PRINT #6,"Please send this print out and make cheques payable to:"
  173.         IF ERR<>0 THEN EXIT SUB
  174.         PRINT #6,""
  175.         IF ERR<>0 THEN EXIT SUB
  176.         PRINT #6,"Malcolm Campbell"
  177.         IF ERR<>0 THEN EXIT SUB
  178.         PRINT #6,"28 Northbourne Street,"
  179.         IF ERR<>0 THEN EXIT SUB
  180.         PRINT #6,"Deckham, Gateshead,"
  181.         IF ERR<>0 THEN EXIT SUB
  182.         PRINT #6,"Tyne & Wear, NE8 4AH."
  183.         IF ERR<>0 THEN EXIT SUB
  184.         PRINT #6,""
  185.         IF ERR<>0 THEN EXIT SUB
  186.         PRINT #6,"I have just won more than one thousand pounds in the lottery"
  187.         IF ERR<>0 THEN EXIT SUB
  188.         PRINT #6,"using LoTo98. I used the random number method (1/2/3/4/5) to"
  189.         IF ERR<>0 THEN EXIT SUB
  190.         PRINT #6,"generate the numbers.  I have included ten pounds in this letter."
  191.         IF ERR<>0 THEN EXIT SUB
  192.         PRINT #6,""
  193.         IF ERR<>0 THEN EXIT SUB
  194.         PRINT #6,"Note: you're only required to pay the ten pounds once."
  195.         IF ERR<>0 THEN EXIT SUB
  196.       END IF
  197.       IF TEMP <> 0 THEN
  198.         PRINT #6,""
  199.         IF ERR<>0 THEN EXIT SUB
  200.       END IF
  201.       22
  202.   END IF
  203. END SUB
  204. SUB _BOTCLEAR
  205.   SHARED BOTS()
  206.   FOR N=1 TO 65
  207.     BOTS(N)=0
  208.   NEXT N
  209. END SUB
  210. SUB _BUTTON4
  211.     SHARED BOTS()
  212.     SHARED Z1()
  213.     FOR N=0 TO 4
  214.       FOR N1=1 TO 10
  215.         CALL _CONVERT(((N*10)+N1)) 
  216.         IF Z1(1)=((N*10)+N1) OR Z1(2)=((N*10)+N1) OR Z1(3)=((N*10)+N1) OR Z1(4)=((N*10)+N1) OR Z1(5)=((N*10)+N1) OR Z1(6)=((N*10)+N1) OR Z1(7)=((N*10)+N1) THEN
  217.           IF BOTS((N*10)+N1)=0 OR BOTS((N*10)+N1)=2 THEN
  218.             IF ((N*10)+N1)<>50 THEN
  219.               IF BOTS((N*10)+N1)=2 THEN
  220.                 GADGET CLOSE (200+((N*10)+N1))
  221.               END IF
  222.               GADGET (200+((N*10)+N1)),OFF,B$,(((20*N1)+1),(63+(N*14)))-(((20*N1)+19),(75+(N*14))),BUTTON,1,"DICT.FONT",8,0
  223.               BOTS((N*10)+N1)=1
  224.             END IF
  225.           END IF
  226.         ELSE
  227.           IF BOTS((N*10)+N1)=0 OR BOTS((N*10)+N1)=1 THEN
  228.             IF ((N*10)+N1)<>50 THEN
  229.               IF BOTS((N*10)+N1)=1 THEN
  230.                 GADGET CLOSE (200+((N*10)+N1))
  231.               END IF
  232.               GADGET (200+((N*10)+N1)),ON,B$,(((20*N1)+1),(63+(N*14)))-(((20*N1)+19),(75+(N*14))),BUTTON,1,"DICT.FONT",8,0
  233.               BOTS((N*10)+N1)=2
  234.             END IF
  235.           END IF
  236.         END IF
  237.       NEXT N1
  238.     NEXT N
  239.     IF Z1(1)>0 OR Z1(2)>0 OR Z1(3)>0 OR Z1(4)>0 OR Z1(5)>0 OR Z1(6)>0 OR Z1(7)>0 THEN
  240.       IF BOTS(50)=0 OR BOTS(50)=2 THEN
  241.         IF BOTS(50)=2 THEN
  242.            GADGET CLOSE (250)
  243.         END IF   
  244.         GADGET 250,ON,"<-",(201,119)-(219,131),BUTTON,1,"DICT.FONT",8,0
  245.         BOTS(50)=1
  246.       END IF
  247.     ELSE
  248.       IF BOTS(50)=0 OR BOTS(50)=1 THEN 
  249.         IF BOTS(50)=1 THEN
  250.           GADGET CLOSE (250)
  251.         END IF 
  252.         GADGET 250,OFF,"<-",(201,119)-(219,131),BUTTON,1,"DICT.FONT",8,0
  253.         BOTS(50)=2
  254.       END IF
  255.     END IF
  256.     GADGET 251,ON,"Cancel",(21,133)-(69,145),BUTTON,1,"DICT.FONT",8,0
  257.     IF Z1(1)>0 OR Z1(2)>0 OR Z1(3)>0 OR Z1(4)>0 OR Z1(5)>0 OR Z1(6)>0 OR Z1(7)>0 THEN
  258.       IF BOTS(60)<>1 THEN
  259.         GADGET CLOSE 252
  260.         GADGET 252,ON,"Clear",(71,133)-(119,145),BUTTON,1,"DICT.FONT",8,0
  261.         BOTS(60)=1
  262.       END IF
  263.     ELSE
  264.       IF BOTS(60)<>2 THEN
  265.         GADGET CLOSE 252
  266.         GADGET 252,OFF,"Clear",(71,133)-(119,145),BUTTON,1,"DICT.FONT",8,0
  267.         BOTS(60)=2
  268.       END IF
  269.     END IF
  270.     IF Z1(1)>0 AND Z1(2)>0 AND Z1(3)>0 AND Z1(4)>0 AND Z1(5)>0 AND Z1(6)>0 AND Z1(7)>0 THEN
  271.       IF BOTS(59)<>1 THEN
  272.         GADGET CLOSE 253
  273.         GADGET 253,ON,"Print",(121,133)-(169,145),BUTTON,1,"DICT.FONT",8,0
  274.         BOTS(59)=1
  275.       END IF
  276.     ELSE
  277.       IF BOTS(59)<>2 THEN
  278.         GADGET CLOSE 253
  279.         GADGET 253,OFF,"Print",(121,133)-(169,145),BUTTON,1,"DICT.FONT",8,0
  280.         BOTS(59)=2
  281.       END IF
  282.     END IF
  283.     IF Z1(1)>0 AND Z1(2)>0 AND Z1(3)>0 AND Z1(4)>0 AND Z1(5)>0 AND Z1(6)>0 AND Z1(7)>0 THEN
  284.       IF BOTS(58)<>1 THEN
  285.         GADGET CLOSE 254
  286.         GADGET 254,ON,"Accept",(171,133)-(219,145),BUTTON,1,"DICT.FONT",8,0
  287.         BOTS(58)=1
  288.       END IF
  289.     ELSE
  290.       IF BOTS(58)<>2 THEN
  291.         GADGET CLOSE 254
  292.         GADGET 254,OFF,"Accept",(171,133)-(219,145),BUTTON,1,"DICT.FONT",8,0
  293.         BOTS(58)=2
  294.       END IF
  295.     END IF
  296.     FONT "DICT.FONT",8 : STYLE 0
  297.     PENUP : SETXY 32,40 : PRINT "The numbers drawn were:  Bonus"
  298.   '  FONT "DICT.FONT",8 : STYLE 0
  299.   '  PENUP : SETXY 46,47 : PRINT "With the bonus of:"
  300.     FOR N=1 TO 6
  301.       IF Z1(N)>0 THEN
  302.         IF BOTS(50+N)<>Z1(N) THEN
  303.           GADGET CLOSE (194+N)
  304.           CALL _CONVERT(Z1(N))
  305.           GADGET (194+N),ON,B$,(7+(N*25),43)-(27+(25*N),57),BUTTON,1,"DICT.FONT",8,0
  306.           BOTS(50+N)=Z1(N)
  307.         END IF
  308.       ELSE
  309.         GADGET CLOSE (194+N)
  310.       END IF
  311.     NEXT N
  312.     IF Z1(7)>0 THEN
  313.       IF BOTS(57)<>Z1(7) THEN
  314.         GADGET CLOSE 255
  315.         CALL _CONVERT(Z1(7))
  316.         GADGET 255,ON,B$,(187,43)-(207,57),BUTTON,1,"DICT.FONT",8,0
  317.         BOTS(57)=Z1(7)
  318.       END IF
  319.     ELSE
  320.       GADGET CLOSE 255
  321.     END IF
  322. END SUB
  323. SUB _ABOUT
  324.   WHILE 1=1
  325.     REPEAT
  326.       GADGET WAIT 0
  327.       THEGADGET = GADGET(1)
  328.     UNTIL THEGADGET <= 256
  329.     IF THEGADGET = 256 OR THEGADGET = 254 THEN
  330.       CALL _QUIT
  331.     END IF
  332.     IF THEGADGET = 255 THEN
  333.       CALL _WIPE1
  334.       CALL _REMOVE
  335.       EXIT SUB
  336.     END IF
  337.   WEND
  338. END SUB
  339. SUB _NUMBER1
  340.   SHARED BOTS()
  341.   SHARED Z1()
  342.   SHARED Y1()
  343.   FOR N=1 TO 7
  344.     Y1(N)=Z1(N)
  345.   NEXT N
  346.   4
  347.   WHILE 1=1
  348.     REPEAT
  349.       GADGET WAIT 0
  350.       THEGADGET = GADGET(1)
  351.     UNTIL THEGADGET <= 256
  352.     IF THEGADGET = 256 THEN
  353.       CALL _QUIT
  354.     END IF
  355.     IF THEGADGET = 253 THEN
  356.       CALL _PRINTER1(1)
  357.       CLOSE #6
  358.     END IF
  359.     IF THEGADGET = 252 THEN
  360.       FOR N=1 TO 7
  361.         BOTS(50+N)=0
  362.         Z1(N)=0
  363.       NEXT N
  364.       CALL _BUTTON4
  365.       GOTO 4
  366.     END IF
  367.     IF THEGADGET = 254 THEN
  368.       CALL _BOTCLEAR
  369.       CALL _REMOVE1
  370.       EXIT SUB
  371.     END IF
  372.     IF THEGADGET = 251 THEN
  373.       FOR N=1 TO 7
  374.         Z1(N)=Y1(N)
  375.       NEXT N
  376.       CALL _BOTCLEAR
  377.       CALL _REMOVE1
  378.       EXIT SUB
  379.     END IF
  380.     IF THEGADGET >= 201 AND THEGADGET <= 249 THEN
  381.       FOR N=1 TO 7
  382.         IF Z1(N) = 0 THEN
  383.           Z1(N) = THEGADGET-200
  384.           CALL _BUTTON4
  385.           GOTO 4
  386.         END IF
  387.       NEXT N
  388.     END IF
  389.     IF THEGADGET = 250 THEN
  390.       FOR N=7 TO 1 STEP -1
  391.         IF Z1(N) > 0 THEN
  392.           BOTS(50+N)=0
  393.           Z1(N) = 0
  394.           CALL _BUTTON4
  395.           GOTO 4
  396.         END IF
  397.       NEXT N
  398.     END IF
  399.   WEND
  400. END SUB
  401. SUB _MAIN
  402.   SHORTINT THEGADGET, n
  403.   WINDOW 9,"LoTo98 from TickSoft",(191,34)-(438,196+SCREEN(6)),30,0 '9,4
  404. '  BEVELBOX (14,8)-(225,64),2
  405. '  BEVELBOX (14,68)-(225,155),2
  406.   BEVELBOX (14,8)-(225,148),2
  407.  ' BEVELBOX (5,4)-(234,159),1
  408.   BEVELBOX (21,12)-(218,60),1 'TEST
  409.   CALL _BOTCLEAR
  410.   CALL _BUTTON
  411.   CALL _LOGO(42,21,8,4)
  412.   CALL _WINDOW
  413. END SUB
  414. SUB _COMPUTE2(LONGINT NUM)
  415.   SHARED Z1()
  416.   LONGINT TESTER
  417.   FOR N = 1 TO 6
  418.     Z1(N)=0
  419.   NEXT N
  420.   CALL _MENU1
  421.   CALL _PERCENT(51,77,100,5,250)
  422.   FOR N = 1 TO 6
  423.     TESTER = NUM
  424.       REPEAT
  425.         REPEAT
  426.           RANDOM = RND (49)
  427.           RANDOM = RANDOM * 49
  428.           RANDOM = FIX(RANDOM)
  429.         UNTIL RANDOM >=1 AND RANDOM <= 49
  430.         TESTER = TESTER - 1
  431.         IF GADGET(0) = -1 THEN
  432.           IF GADGET(1) = 254 THEN
  433.             CALL _REMOVE
  434.             FOR N = 1 TO 6
  435.               Z1(N)=0
  436.             NEXT N
  437.             EXIT SUB
  438.           ELSE
  439.             CALL _QUIT
  440.           END IF
  441.         END IF
  442.       UNTIL TESTER = 0 
  443.       Z1(N) = RANDOM
  444.       CALL _CONCALC(N)
  445.       IF Z1(BC1) = Z1(N) or Z1(BC2) = Z1(N) or Z1(BC3) = Z1(N) or Z1(BC4) = Z1(N) or Z1(BC5) = Z1(N) THEN
  446.         N = N - 1
  447.       END IF
  448.     CALL _PERCENT(51,77,100,5,(N/6)*100)
  449.   NEXT N
  450.   CALL _PERCENT(51,77,100,5,100)
  451.   CALL _WIPE2
  452.   CALL _REMOVE
  453.   CALL _BUTTON10
  454.   CALL _MENU
  455. END SUB
  456. SUB _COMPUTE1(LONGINT NUM)
  457.   SHARED Z1()
  458.   DIM LONGINT NUMB(50)
  459.   FOR N = 1 TO 49
  460.     NUMB(N)=0
  461.   NEXT N
  462.   FOR N = 1 TO 6
  463.     Z1(N)=0
  464.   NEXT N
  465.   CALL _MENU1
  466.   7
  467.   CALL _PERCENT(51,77,100,5,250)
  468.   REPEAT
  469.     REPEAT
  470.       RANDOM = RND (49)
  471.       RANDOM = RANDOM * 49
  472.       RANDOM = FIX(RANDOM)
  473.     UNTIL RANDOM >=1 AND RANDOM <= 49
  474.     NUMB(RANDOM) = NUMB(RANDOM)+1
  475.     FOR NN = 1 TO 6
  476.       CALL _CONCALC(NN)
  477.       FOR N = 1 TO 49
  478.         IF Z1(BC1) <> N AND Z1(BC2) <> N AND Z1(BC3) <> N AND Z1(BC4) <> N AND Z1(BC5) <> N THEN
  479.           IF NUMB(Z1(NN)) < NUMB(N) THEN 
  480.             Z1(NN) = N
  481.           END IF
  482.         END IF
  483.       NEXT N
  484.     NEXT NN
  485.     PERT=(NUMB(Z1(6))/NUM)*100
  486.     CALL _PERCENT(51,77,100,5,PERT)
  487.     IF GADGET(0) = -1 THEN
  488.       IF GADGET(1) = 254 THEN
  489.         CALL _REMOVE
  490.         FOR N = 1 TO 49
  491.           NUMB(N)=0
  492.         NEXT N
  493.         FOR N = 1 TO 6
  494.           Z1(N)=0
  495.         NEXT N
  496.         EXIT SUB
  497.       ELSE
  498.         CALL _QUIT
  499.       END IF
  500.     END IF
  501.   UNTIL NUMB(Z1(6))=NUM
  502.   CALL _PERCENT(51,77,100,5,100)
  503.   FOR N = 1 TO 6
  504.     IF Z1(N) = 0 THEN
  505.       NUM = 6
  506.       CALL _PERCENT(51,77,100,5,101)
  507.       GOTO 7
  508.     END IF
  509.   NEXT N
  510.   CALL _WIPE2
  511.   CALL _REMOVE
  512.   CALL _BUTTON10
  513.   CALL _MENU
  514. END SUB
  515. SUB _COMPUTE(LONGINT NUM)
  516.   SHARED Z1()
  517.   DIM LONGINT NUMB(50)
  518.   FOR N = 1 TO 49
  519.     NUMB(N)=0
  520.   NEXT N
  521.   FOR N = 1 TO 6
  522.     Z1(N)=0
  523.   NEXT N
  524.   CALL _MENU1
  525.   6
  526.   CALL _PERCENT(51,77,100,5,250)
  527.   FOR X=1 TO NUM
  528.     REPEAT
  529.       RANDOM=RND(49)
  530.       RANDOM=RANDOM*49
  531.       RANDOM=FIX(RANDOM)
  532.     UNTIL RANDOM >= 1 AND RANDOM <= 49
  533.     NUMB(RANDOM) = NUMB(RANDOM)+1
  534.     PERT=(X/NUM)*100
  535.     CALL _PERCENT(51,77,100,5,PERT) 
  536.     IF GADGET(0) = -1 THEN
  537.       IF GADGET(1) = 254 THEN
  538.         CALL _REMOVE
  539.         FOR N = 1 TO 49
  540.           NUMB(N)=0
  541.         NEXT N
  542.         FOR N = 1 TO 6
  543.           Z1(N)=0
  544.         NEXT N
  545.         EXIT SUB
  546.       ELSE
  547.         CALL _QUIT
  548.       END IF
  549.     END IF
  550.   NEXT X
  551.   CALL _PERCENT(51,77,100,5,100) 
  552.   FOR NN = 1 TO 6
  553.     CALL _CONCALC(NN)
  554.     FOR N = 1 TO 49
  555.       IF Z1(BC1) <> N AND Z1(BC2) <> N AND Z1(BC3) <> N AND Z1(BC4) <> N AND Z1(BC5) <> N THEN
  556.         IF NUMB(Z1(NN)) < NUMB(N) THEN 
  557.             Z1(NN) = N
  558.         END IF
  559.       END IF
  560.     NEXT N
  561.   NEXT NN
  562.   FOR N = 1 TO 6
  563.     IF Z1(N) = 0 THEN
  564.       NUM = 6
  565.       CALL _PERCENT(51,77,100,5,101)
  566.       GOTO 6
  567.     END IF
  568.   NEXT N
  569.   CALL _WIPE2
  570.   CALL _REMOVE
  571.   CALL _BUTTON10
  572.   CALL _MENU
  573. END SUB
  574. SUB _BUTTON10
  575.   SHARED Z1()
  576.   Z$="Someone"
  577.   CALL _WIPE
  578.   CALL _LOGO(80,17,4,2)
  579.   BEVELBOX (21,63)-(218,130),1
  580.   FONT "DICT.FONT",8 : STYLE 0
  581.   GADGET 245,ON,Z$,(31,48)-(220,60),STRING,1,"DICT.FONT",8,0
  582.   PENUP : SETXY 27,41 : PRINT "Enter a name followed by return"
  583.   FONT "DICT.FONT",8 : STYLE 2
  584.   PENUP : SETXY 31,72 : PRINT "The numbers generated include:"
  585.   FONT "DICT.FONT",8 : STYLE 0
  586.   FOR N=1 TO 6 STEP +1
  587.     IF Z1(N)>0 THEN
  588.       GADGET CLOSE (245+N)
  589.       CALL _CONVERT(Z1(N))
  590.       GADGET (245+N),ON,B$,(21+(N*25),75)-(41+(N*25),87),BUTTON,1,"DICT.FONT",8,0
  591.     END IF
  592.   NEXT N
  593.   PENUP : SETXY 26,94 : PRINT "These numbers can now  be added
  594.   PENUP : SETXY 26,102 : PRINT "to  the   database   ready  for"
  595.   PENUP : SETXY 26,110 : PRINT "checking, by pressing, save it."
  596.   PENUP : SETXY 26,118 : PRINT "They can  also  be  printed  by"
  597.   PENUP : SETXY 26,126 : PRINT "pressing the print button  now."
  598.   GADGET 255,ON,"Go Back",(21,133)-(69,145),BUTTON,1,"DICT.FONT",8,0
  599.   GADGET 254,OFF,"Stop",(72,133)-(119,145),BUTTON,1,"DICT.FONT",8,0
  600.   GADGET 253,ON,"Print",(121,133)-(169,145),BUTTON,1,"DICT.FONT",8,0
  601.   GADGET 252,ON,"Save It",(171,133)-(219,145),BUTTON,1,"DICT.FONT",8,0
  602. END SUB
  603. SUB _MENU
  604.   SHARED Z1()
  605.   WHILE 1=1
  606.     REPEAT
  607.       GADGET WAIT 0
  608.       THEGADGET = GADGET(1)
  609.     UNTIL THEGADGET <= 256
  610.     IF THEGADGET = 256 THEN
  611.       CALL _QUIT
  612.     END IF
  613.     IF THEGADGET = 255 THEN
  614.       FOR N = 0 TO 7
  615.         Z1(N) = 0
  616.       NEXT N
  617.       CALL _WIPE
  618.       CALL _WIPE1
  619.       CALL _REMOVE2
  620.       CALL _LOGO(42,21,8,4)
  621.       EXIT SUB
  622.     END IF
  623.     IF THEGADGET = 253 THEN
  624.       CALL _PRINTER1(2)
  625.       CLOSE #6
  626.     END IF
  627.     IF THEGADGET = 252 THEN
  628.       CALL _WIPE
  629.       CALL _WIPE1
  630.       CALL _REMOVE2
  631.       CALL _LOGO(42,21,8,4)
  632.       CALL _BUTTON1(0)
  633.       CALL _DATABASE(1)
  634.       CALL _WIPE
  635.       CALL _BUTTON10
  636.     END IF
  637.     IF THEGADGET = 245 THEN
  638.       N = LEN(CSTR(GADGET(2)))
  639.       IF N <= 10 THEN
  640.         Z$ = CSTR(GADGET(2))
  641.       ELSE
  642.         MSGBOX "Please use no more than 10 characters!","Okay, I'll do that."
  643.       END IF
  644.     END IF
  645.   WEND
  646. END SUB
  647. SUB _RANDOM1(TEMP)
  648.   DEFLNG NUM
  649.   NUM=20
  650.   WHILE 1=1
  651.     REPEAT
  652.       GADGET WAIT 0
  653.       THEGADGET = GADGET(1)
  654.     UNTIL THEGADGET <=256
  655.     IF THEGADGET = 256 THEN
  656.       CALL _QUIT
  657.     END IF
  658.     IF THEGADGET = 254 THEN
  659.       CALL _WIPE1
  660.       CALL _REMOVE
  661.       EXIT SUB
  662.     END IF
  663.     IF THEGADGET = 255 THEN
  664.       NUM=GADGET(2)
  665.       IF NUM >= 6 AND NUM <= 2100000000 THEN
  666.         GADGET CLOSE 253
  667.         GADGET 253,ON,"Accept",(122,133)-(219,145),BUTTON,1,"DICT.FONT",8,0
  668.       END IF
  669.       IF NUM < 6 THEN
  670.         GADGET CLOSE 253
  671.         GADGET 253,OFF,"Accept",(122,133)-(219,145),BUTTON,1,"DICT.FONT",8,0
  672.       END IF
  673.     END IF
  674.     IF THEGADGET = 253 THEN
  675.       CALL _WIPE2
  676.       CALL _REMOVE
  677.       CALL _BUTTON9
  678.       IF TEMP = 1 THEN
  679.         CALL _COMPUTE(NUM)
  680.       END IF
  681.       IF TEMP = 2 THEN
  682.         CALL _COMPUTE1(NUM)
  683.       END IF
  684.       IF TEMP = 3 THEN
  685.         CALL _COMPUTE2(NUM)
  686.       END IF
  687.       CALL _WIPE1
  688.       CALL _REMOVE
  689.       EXIT SUB
  690.     END IF
  691.   WEND
  692. END SUB
  693. SUB _RANDOM
  694.   WHILE 1=1
  695.     REPEAT
  696.       GADGET WAIT 0
  697.       THEGADGET = GADGET(1)
  698.     UNTIL THEGADGET <= 256
  699.     IF THEGADGET = 256 OR THEGADGET = 249 THEN
  700.       CALL _QUIT    
  701.     END IF
  702.     IF THEGADGET = 250 THEN
  703.       CALL _REMOVE
  704.       EXIT SUB
  705.     END IF
  706.     IF THEGADGET = 255 THEN
  707.       CALL _REMOVE
  708.       CALL _BUTTON7
  709.       CALL _BUTTON8
  710.       CALL _RANDOM1(1)
  711.       CALL _BUTTON6
  712.     END IF
  713.     IF THEGADGET = 254 THEN
  714.       CALL _REMOVE
  715.       CALL _BUTTON7
  716.       CALL _BUTTON11
  717.       CALL _RANDOM1(2)
  718.       CALL _BUTTON6
  719.     END IF
  720.     IF THEGADGET = 253 THEN
  721.       CALL _REMOVE
  722.       CALL _BUTTON7
  723.       CALL _BUTTON12
  724.       CALL _RANDOM1(3)
  725.       CALL _BUTTON6
  726.     END IF
  727.   WEND
  728. END SUB
  729. SUB _WINDOW
  730.   SHARED Z1()
  731.   WHILE 1=1
  732.     REPEAT
  733.       GADGET WAIT 0
  734.       THEGADGET = GADGET(1)
  735.     UNTIL THEGADGET <= 256
  736.     IF THEGADGET = 256 OR THEGADGET = 249 THEN
  737.       CALL _QUIT
  738.     END IF
  739.     IF THEGADGET = 255 THEN
  740.       CALL _REMOVE
  741.       CALL _BUTTON6
  742.       CALL _RANDOM
  743.       CALL _BUTTON
  744.     END IF
  745.     IF THEGADGET = 254 THEN
  746.       CALL _REMOVE
  747.       CALL _BUTTON1(0)
  748.       CALL _DATABASE(0)
  749.       CALL _BUTTON
  750.     END IF
  751.     IF THEGADGET = 252 THEN
  752.       CALL _REMOVE
  753.       CALL _BUTTON1(1)
  754.       CALL _DATABASE2
  755.       CALL _BUTTON
  756.     END IF
  757.     IF THEGADGET = 250 THEN
  758.       CALL _REMOVE
  759.       CALL _BUTTON13
  760.       CALL _ABOUT
  761.       CALL _BUTTON
  762.     END IF
  763.     IF THEGADGET = 251 THEN
  764.       CALL _PRINTER1(4)
  765.       CLOSE #6
  766.     END IF
  767.     IF THEGADGET = 253 THEN
  768.       OPEN "I",#1,"SYS:S/LOTTO-CHECK1.DATA"
  769.         FOR N=1 TO 7 STEP +1
  770.           INPUT #1,A
  771.           Z1(N)=A
  772.         NEXT N
  773.       CLOSE #1
  774.       CALL _REMOVE
  775.       CALL _WIPE
  776.       CALL _BUTTON4
  777.       CALL _LOGO(80,16,4,2) 'LOGO ADDED BECAUSE NO ROOM ANYWHERE
  778.       CALL _NUMBER1
  779.       OPEN "O",#1,"SYS:S/LOTTO-CHECK1.DATA"
  780.       FOR N=1 TO 7 STEP +1
  781.         PRINT #1,Z1(N)
  782.         Z1(N)=0
  783.       NEXT N
  784.       CLOSE #1
  785.       CALL _WIPE
  786.       CALL _LOGO(42,21,8,4)
  787.       CALL _BUTTON
  788.     END IF
  789.   WEND
  790. END SUB
  791. SUB _BUTTON3
  792.   SHARED BOTS()
  793.   SHARED Z1()
  794.   FOR N=0 TO 4
  795.     FOR N1=1 TO 10
  796.       CALL _CONVERT(((N*10)+N1))
  797.       IF Z1(1)=((N*10)+N1) OR Z1(2)=((N*10)+N1) OR Z1(3)=((N*10)+N1) OR Z1(4)=((N*10)+N1) OR Z1(5)=((N*10)+N1) OR Z1(6)=((N*10)+N1) THEN
  798.         IF BOTS((N*10)+N1)=0 OR BOTS((N*10)+N1)=2 THEN
  799.           IF ((N*10)+N1) <> 50 THEN
  800.             IF BOTS((N*10)+N1)=2 THEN
  801.               GADGET CLOSE (200+((N*10)+N1))
  802.             END IF
  803.             GADGET (200+((N*10)+N1)),OFF,B$,(((20*N1)+1),(63+(N*14)))-(((20*N1)+19),(75+(N*14))),BUTTON,1,"DICT.FONT",8,0
  804.             BOTS((N*10)+N1)=1
  805.           END IF
  806.         END IF
  807.       ELSE
  808.         IF BOTS((N*10)+N1)=0 OR BOTS((N*10)+N1)=1 THEN
  809.           IF ((N*10)+N1) <> 50 THEN
  810.             IF BOTS((N*10)+N1)=1 THEN
  811.               GADGET CLOSE (200+((N*10)+N1))
  812.             END IF
  813.             GADGET (200+((N*10)+N1)),ON,B$,(((20*N1)+1),(63+(N*14)))-(((20*N1)+19),(75+(N*14))),BUTTON,1,"DICT.FONT",8,0
  814.             BOTS((N*10)+N1)=2
  815.           END IF
  816.         END IF
  817.       END IF
  818.     NEXT N1
  819.   NEXT N
  820.   IF Z1(1)>0 OR Z1(2)>0 OR Z1(3)>0 OR Z1(4)>0 OR Z1(5)>0 OR Z1(6)>0 THEN
  821.     IF BOTS(50)=0 OR BOTS(50)=2 THEN
  822.       IF BOTS(50)=2 THEN
  823.         GADGET CLOSE 250
  824.       END IF
  825.       GADGET 250,ON,"<-",(201,119)-(219,131),BUTTON,1,"DICT.FONT",8,0
  826.       BOTS(50)=1
  827.     END IF
  828.   ELSE
  829.     IF BOTS(50)=0 OR BOTS(50)=1 THEN
  830.       IF BOTS(50)=1 THEN
  831.         GADGET CLOSE 250
  832.       END IF
  833.       GADGET 250,OFF,"<-",(201,119)-(219,131),BUTTON,1,"DICT.FONT",8,0
  834.       BOTS(50)=2
  835.     END IF
  836.   END IF
  837.   GADGET 251,ON,"Cancel",(21,133)-(69,145),BUTTON,1,"DICT.FONT",8,0
  838.   IF Z1(1)>0 OR Z1(2)>0 OR Z1(3)>0 OR Z1(4)>0 OR Z1(5)>0 OR Z1(6)>0 THEN
  839.     IF BOTS(60)<>1 THEN
  840.       GADGET CLOSE 252
  841.       GADGET 252,ON,"Clear",(71,133)-(119,145),BUTTON,1,"DICT.FONT",8,0
  842.       BOTS(60)=1
  843.     END IF
  844.   ELSE
  845.     IF BOTS(60)<>2 THEN
  846.       GADGET CLOSE 252
  847.       GADGET 252,OFF,"Clear",(71,133)-(119,145),BUTTON,1,"DICT.FONT",8,0
  848.       BOTS(60)=2
  849.     END IF
  850.   END IF
  851.   IF Z1(1)>0 AND Z1(2)>0 AND Z1(3)>0 AND Z1(4)>0 AND Z1(5)>0 AND Z1(6)>0 THEN
  852.     IF BOTS(59)<>1 THEN
  853.       GADGET CLOSE 253
  854.       GADGET 253,ON,"Print",(121,133)-(169,145),BUTTON,1,"DICT.FONT",8,0
  855.       BOTS(59)=1
  856.     END IF
  857.   ELSE
  858.     IF BOTS(59)<>2 THEN
  859.       GADGET CLOSE 253
  860.       GADGET 253,OFF,"Print",(121,133)-(169,145),BUTTON,1,"DICT.FONT",8,0
  861.       BOTS(59)=2
  862.     END IF
  863.   END IF
  864.   IF Z1(1)>0 AND Z1(2)>0 AND Z1(3)>0 AND Z1(4)>0 AND Z1(5)>0 AND Z1(6)>0 THEN
  865.     IF BOTS(58)<>1 THEN
  866.       GADGET CLOSE 254
  867.       GADGET 254,ON,"Accept",(171,133)-(219,145),BUTTON,1,"DICT.FONT",8,0
  868.       BOTS(58)=1
  869.     END IF
  870.   ELSE
  871.     IF BOTS(58)=1 THEN
  872.       GADGET CLOSE 254
  873.       GADGET 254,OFF,"Accept",(171,133)-(219,145),BUTTON,1,"DICT.FONT",8,0
  874.       BOTS(58)=2
  875.     END IF
  876.     IF Z1(1)=0 THEN
  877.       IF BOTS(58)<>1 THEN
  878.         GADGET CLOSE 254
  879.         GADGET 254,ON,"Accept",(171,133)-(219,145),BUTTON,1,"DICT.FONT",8,0
  880.         BOTS(58)=1
  881.       END IF
  882.     END IF
  883.   END IF
  884.   FONT "DICT.FONT",8 : STYLE 0
  885.   GADGET 255,ON,Z$,(31,48)-(220,60),STRING,1,"DICT.FONT",8,0
  886.   PENUP : SETXY 27,41 : PRINT "Enter a name followed by return"
  887.  ' PENUP : SETXY 30,49 : PRINT "and then click on the 6 numbers:"
  888.   FOR N=1 TO 6 STEP +1
  889.     IF Z1(N)>0 THEN
  890.       IF BOTS(50+N)<>Z1(N) THEN
  891.         GADGET CLOSE (194+N)
  892.         CALL _CONVERT(Z1(N))
  893.         GADGET (194+N),ON,B$,(21+(N*25),17)-(41+(N*25),31),BUTTON,1,"DICT.FONT",8,0
  894.         BOTS(50+N)=Z1(N)
  895.       END IF
  896.     ELSE
  897.       GADGET CLOSE (194+N)
  898.     END IF
  899.   NEXT N
  900. END SUB
  901. SUB _NUMBER
  902.   SHARED BOTS()
  903.   SHARED Z1()
  904.   SHARED Y1()
  905.   Y$=Z$
  906.   FOR N=0 TO 6
  907.     Y1(N)=Z1(N)
  908.   NEXT N
  909.   3
  910.   WHILE 1=1
  911.     REPEAT
  912.       GADGET WAIT 0
  913.       THEGADGET = GADGET(1)
  914.     UNTIL THEGADGET <= 256
  915.     IF THEGADGET = 254 THEN
  916.       CALL _BOTCLEAR
  917.       CALL _REMOVE1
  918.       IF Z1(0) = 0 THEN
  919.         Z$ = "Someone"
  920.       END IF
  921.       EXIT SUB
  922.     END IF
  923.     IF THEGADGET = 251 THEN
  924.       Z$=Y$
  925.       FOR N=0 TO 6
  926.         Z1(N)=Y1(N)
  927.       NEXT N
  928.       CALL _BOTCLEAR
  929.       CALL _REMOVE1
  930.       EXIT SUB
  931.     END IF
  932.     IF THEGADGET = 256 THEN
  933.       CALL _QUIT
  934.     END IF
  935.     IF THEGADGET = 255 THEN
  936.       N=LEN(CSTR(GADGET(2)))
  937.       IF N <=10 THEN
  938.         Z$ = CSTR(GADGET(2))
  939.       ELSE
  940.         MSGBOX "Please use no more than 10 characters!","Okay, I'll do that."
  941.       END IF
  942.       CALL _BUTTON3
  943.       GOTO 3
  944.     END IF
  945.     IF THEGADGET = 253 THEN
  946.       CALL _PRINTER1(3)
  947.       CLOSE #6
  948.     END IF
  949.     IF THEGADGET = 252 THEN
  950.       Z$ = "Someone"
  951.       Z1(0) = 0
  952.       FOR N=1 TO 6 STEP +1
  953.         BOTS(50+N)=0
  954.         Z1(N) = 0
  955.       NEXT N
  956.       CALL _BUTTON3
  957.       GOTO 3
  958.     END IF
  959.     IF THEGADGET = 250 THEN
  960.       FOR N=6 TO 2 STEP -1
  961.         IF Z1(N) > 0 THEN
  962.           BOTS(50+N)=0
  963.           Z1(N) = 0
  964.           CALL _BUTTON3
  965.           GOTO 3
  966.         END IF
  967.       NEXT N
  968.       IF Z1(1) > 0 THEN
  969.         BOTS(51)=0
  970.         Z1(0) = 0
  971.         Z1(1) = 0
  972.         CALL _BUTTON3
  973.         GOTO 3
  974.       END IF
  975.     END IF
  976.     IF Z1(1)<1 OR Z1(2)<1 OR Z1(3)<1 OR Z1(4)<1 OR Z1(5)<1 OR Z1(6)<1 THEN
  977.       IF THEGADGET >=201 AND THEGADGET <=249 THEN 
  978.         FOR N = 1 TO 5 STEP +1
  979.           IF Z1(N) = 0 THEN
  980.             Z1(N) = THEGADGET-200)
  981.             CALL _BUTTON3
  982.             GOTO 3
  983.           END IF
  984.         NEXT N
  985.         IF Z1(6) = 0 THEN
  986.           Z1(6) = THEGADGET-200
  987.           CALL _BUTTON3
  988.           Z1(0)=1
  989.           GOTO 3
  990.         END IF
  991.       END IF
  992.     END IF
  993.   WEND
  994. END SUB
  995. SUB _BUTTON1(NN)
  996.   DIM A1(5)
  997.   DIM B2$(5)
  998.   OPEN "I",#1,"SYS:S/LOTTO-CHECK.DATA"
  999.   OPEN "I",#2,"SYS:S/LOTTO-CHECK2.DATA"
  1000.   OPEN "I",#3,"SYS:S/LOTTO-CHECK3.DATA"
  1001.   OPEN "I",#4,"SYS:S/LOTTO-CHECK4.DATA"
  1002.   OPEN "I",#5,"SYS:S/LOTTO-CHECK5.DATA"
  1003.   FOR N = 1 TO 5
  1004.     INPUT #N,A1(N)
  1005.     INPUT #N,A1(0)
  1006.     A1(N)=A1(N)+A1(0)
  1007.     INPUT #N,A1(0)
  1008.     A1(N)=A1(N)+A1(0)
  1009.     INPUT #N,A1(0)
  1010.     A1(N)=A1(N)+A1(0)
  1011.     INPUT #N,A1(0)
  1012.     A1(N)=A1(N)+A1(0)
  1013.     CLOSE #N
  1014.   NEXT N
  1015.   {* B1$ = "Edit 01 To 05 (" *}
  1016.   B3$ = "/5 USED)" 
  1017.   FOR N = 1 TO 5
  1018.     CALL _CONVERT(A1(N))
  1019.     B2$(N)=B$
  1020.     IF NN=0 THEN
  1021.       CAR$="Edit"
  1022.     ELSE
  1023.       CAR$="View"
  1024.     END IF
  1025.     B2$(N)=B2$(N)+B3$
  1026.   NEXT N
  1027.   GADGET 251,ON,CAR$+" 01 To 05 ("+B2$(1),(21,63)-(219,75),BUTTON,1,"DICT.FONT",8,0
  1028.   GADGET 252,ON,CAR$+" 09 To 10 ("+B2$(2),(21,77)-(219,89),BUTTON,1,"DICT.FONT",8,0
  1029.   GADGET 253,ON,CAR$+" 11 To 15 ("+B2$(3),(21,91)-(219,103),BUTTON,1,"DICT.FONT",8,0
  1030.   GADGET 254,ON,CAR$+" 16 To 20 ("+B2$(4),(21,105)-(219,117),BUTTON,1,"DICT.FONT",8,0
  1031.   GADGET 255,ON,CAR$+" 21 To 25 ("+B2$(5),(21,119)-(219,131),BUTTON,1,"DICT.FONT",8,0
  1032.   GADGET 250,ON,"Go Back",(21,133)-(118,145),BUTTON,1,"DICT.FONT",8,0
  1033.   GADGET 249,ON,"Quit",(122,133)-(219,145),BUTTON,1,"DICT.FONT",8,0
  1034. END SUB
  1035. SUB _DATABASE(TEMP)
  1036.   WHILE 1=1
  1037.     REPEAT
  1038.       GADGET WAIT 0
  1039.       THEGADGET = GADGET(1)
  1040.     UNTIL THEGADGET <= 256
  1041.     IF THEGADGET = 249 OR THEGADGET = 256 THEN
  1042.       CALL _QUIT
  1043.     END IF
  1044.     IF THEGADGET = 250 THEN
  1045.       CALL _REMOVE
  1046.       EXIT SUB
  1047.     END IF
  1048.     IF THEGADGET >= 251 AND THEGADGET <=255 THEN
  1049.       IF TEMP = 0 THEN
  1050.         T = THEGADGET
  1051.         CALL _REMOVE
  1052.         CALL _BUTTON2
  1053.         CALL _DATABASE1(0)
  1054.         CALL _BUTTON1(0)
  1055.       ELSE
  1056.         T = THEGADGET
  1057.         CALL _REMOVE
  1058.         CALL _BUTTON2
  1059.         CALL _DATABASE1(1)
  1060.         CALL _BUTTON1(1)
  1061.       END IF
  1062.     END IF
  1063.   WEND
  1064. END SUB
  1065. SUB _DATABASE4
  1066.   SHARED C$()
  1067.   SHARED ED$()
  1068.   WHILE 1=1
  1069.     REPEAT
  1070.       GADGET WAIT 0
  1071.       THEGADGET = GADGET(1)    
  1072.     UNTIL THEGADGET <= 256
  1073.     IF THEGADGET = 249 OR THEGADGET = 256 THEN
  1074.       CALL _QUIT
  1075.     END IF
  1076.     IF THEGADGET >= 251 AND THEGADGET <= 255 THEN
  1077.       CALL _PRINTER1(0)
  1078.       PRINT #6,"As a result of the recent draw ";C$(THEGADGET-250);" got ";ED$(THEGADGET-250);"."
  1079.       PRINT #6,""
  1080.       CLOSE #6
  1081.     END IF
  1082.     IF THEGADGET = 250 THEN
  1083.       CALL _REMOVE
  1084.       EXIT SUB
  1085.     END IF
  1086.   WEND
  1087. END SUB
  1088. SUB _DATABASE2
  1089.   WHILE 1=1
  1090.     REPEAT
  1091.       GADGET WAIT 0
  1092.       THEGADGET = GADGET(1)
  1093.     UNTIL THEGADGET <= 256
  1094.     IF THEGADGET = 249 OR THEGADGET = 256 THEN
  1095.       CALL _QUIT
  1096.     END IF
  1097.     IF THEGADGET = 250 THEN
  1098.       CALL _REMOVE
  1099.       EXIT SUB
  1100.     END IF
  1101.     IF THEGADGET >= 251 AND THEGADGET <= 255 THEN
  1102.       T = THEGADGET
  1103.       CALL _REMOVE
  1104.       CALL _BUTTON5
  1105.       CALL _DATABASE4
  1106.       CALL _REMOVE
  1107.       CALL _BUTTON1(1)
  1108.     END IF
  1109.   WEND
  1110. END SUB
  1111. SUB _BUTTON5
  1112.   SHARED B()
  1113.   SHARED B1$()
  1114.   SHARED C$()
  1115.   SHARED ED$()
  1116.   DIM D1(8)
  1117.   DIM E(6)
  1118.   FOR N=0 TO 5
  1119.     D1(N)=0
  1120.     E(N)=0
  1121.     ED$(N)=""
  1122.   NEXT N
  1123.   E(6)=0
  1124.   E(7)=0
  1125.   IF T = 251 THEN
  1126.     OPEN "I",#1,"SYS:S/LOTTO-CHECK.DATA"
  1127.   END IF
  1128.   IF T = 252 THEN
  1129.     OPEN "I",#1,"SYS:S/LOTTO-CHECK2.DATA"
  1130.   END IF
  1131.   IF T = 253 THEN
  1132.     OPEN "I",#1,"SYS:S/LOTTO-CHECK3.DATA"
  1133.   END IF
  1134.   IF T = 254 THEN
  1135.     OPEN "I",#1,"SYS:S/LOTTO-CHECK4.DATA"
  1136.   END IF
  1137.   IF T = 255 THEN
  1138.     OPEN "I",#1,"SYS:S/LOTTO-CHECK5.DATA"
  1139.   END IF
  1140.   OPEN "I",#2,"SYS:S/LOTTO-CHECK1.DATA"
  1141.   FOR N=0 TO 6
  1142.     INPUT #1,B(N)
  1143.     INPUT #1,B(N+7)
  1144.     INPUT #1,B(N+14)
  1145.     INPUT #1,B(N+21)
  1146.     INPUT #1,B(N+28)
  1147.   NEXT N
  1148.   FOR N=1 TO 5
  1149.     INPUT #1,C$(N)
  1150.     NN=LEN(C$(N))
  1151.     IF NN > 10 THEN
  1152.       C$(N)="Long Name"
  1153.     END IF
  1154.   NEXT N
  1155.   FOR N=1 TO 7
  1156.     INPUT #2,D1(N)
  1157.   NEXT N
  1158.   CLOSE #1
  1159.   CLOSE #2
  1160.   FOR Y=1 TO 6
  1161.     FOR N=1 TO 6
  1162.       FOR A=0 TO 4
  1163.         IF B(Y+(A*7))=D1(N) THEN
  1164.           E(A+1)=E(A+1)+1
  1165.         END IF
  1166.       NEXT A
  1167.     NEXT N
  1168.   NEXT Y
  1169.   FOR Y=1 TO 6
  1170.     FOR A=0 TO 4
  1171.       IF E(A+1)=5 THEN
  1172.         IF B(Y+(A*7))=D1(7) THEN
  1173.           E(A+1)=7
  1174.         END IF
  1175.       END IF
  1176.     NEXT A
  1177.   NEXT Y
  1178.   FOR N = 1 TO 5
  1179.     CALL _CONVERT1(E(N))
  1180.     ED$(N)=B$
  1181.   NEXT N
  1182.   FOR N=0 TO 4
  1183.     IF B(N*7) = 1 THEN
  1184.       GADGET (250+(N+1)),ON,C$(N+1)+" Got "+ED$(N+1),(21,63+(N*14))-(219,75+(N*14)),BUTTON,1,"DICT.FONT",8,0
  1185.     ELSE
  1186.       GADGET (250+(N+1)),OFF,"This Board Was Not Used",(21,63+(N*14))-(219,75+(N*14)),BUTTON,1,"DICT.FONT",8,0
  1187.     END IF
  1188.   NEXT N
  1189.   GADGET 250,ON,"Go Back",(21,133)-(118,145),BUTTON,1,"DICT.FONT",8,0
  1190.   GADGET 249,ON,"Quit",(122,133)-(219,145),BUTTON,1,"DICT.FONT",8,0
  1191. END SUB
  1192. SUB _BUTTON2
  1193.   SHARED B()
  1194.   SHARED B1$()
  1195.   SHARED C$()
  1196.   IF T = 251 THEN
  1197.     OPEN "I",#1,"SYS:S/LOTTO-CHECK.DATA"
  1198.   END IF
  1199.   IF T = 252 THEN
  1200.     OPEN "I",#1,"SYS:S/LOTTO-CHECK2.DATA"
  1201.   END IF
  1202.   IF T = 253 THEN
  1203.     OPEN "I",#1,"SYS:S/LOTTO-CHECK3.DATA"
  1204.   END IF
  1205.   IF T = 254 THEN
  1206.     OPEN "I",#1,"SYS:S/LOTTO-CHECK4.DATA"
  1207.   END IF
  1208.   IF T = 255 THEN
  1209.     OPEN "I",#1,"SYS:S/LOTTO-CHECK5.DATA"
  1210.   END IF
  1211.   FOR N=0 TO 6
  1212.     INPUT #1,B(N)
  1213.     B1$(N)=STR$(B(N))
  1214.     INPUT #1,B(N+7)
  1215.     B1$(N+7)=STR$(B(N+7))
  1216.     INPUT #1,B(N+14)
  1217.     B1$(N+14)=STR$(B(N+14))
  1218.     INPUT #1,B(N+21)
  1219.     B1$(N+21)=STR$(B(N+21))
  1220.     INPUT #1,B(N+28)
  1221.     B1$(N+28)=STR$(B(N+28))
  1222.   NEXT N
  1223.   FOR N=1 TO 5
  1224.     INPUT #1,C$(N)
  1225.     NN=LEN(C$(N))
  1226.     IF NN > 10 THEN
  1227.       C$(N)="Long Name"
  1228.     END IF
  1229.   NEXT N
  1230.   CLOSE #1
  1231.   FOR N=0 TO 4
  1232.     IF B(N*7) = 1 THEN
  1233.       GADGET (251+N),ON,C$(N+1)+":"+B1$(1+(7*N))+B1$(2+(7*N))+B1$(3+(7*N))+B1$(4+(7*N))+B1$(5+(7*N))+B1$(6+(7*N)),(21,63+(N*14))-(219,75+(N*14)),BUTTON,1,"DICT.FONT",8,0
  1234.     ELSE
  1235.       GADGET (251+N),ON,"Click Here To Use This Board",(21,63+(14*N))-(219,75+(14*N)),BUTTON,1,"DICT.FONT",8,0
  1236.     END IF
  1237.   NEXT N
  1238.   GADGET 250,ON,"Go Back",(21,133)-(118,145),BUTTON,1,"DICT.FONT",8,0
  1239.   GADGET 249,ON,"Quit",(122,133)-(219,145),BUTTON,1,"DICT.FONT",8,0
  1240. END SUB
  1241. SUB _DATABASE1(TEMP)
  1242.   SHARED B()
  1243.   SHARED B1$()
  1244.   SHARED C$()
  1245.   SHARED Z1()
  1246.   WHILE 1=1
  1247.     REPEAT
  1248.       GADGET WAIT 0
  1249.       THEGADGET = GADGET(1)
  1250.     UNTIL THEGADGET <= 256
  1251.     IF THEGADGET = 249 OR THEGADGET = 256 THEN
  1252.       CALL _QUIT
  1253.     END IF
  1254.     IF THEGADGET = 250 THEN
  1255.       CALL _REMOVE
  1256.       EXIT SUB
  1257.     END IF
  1258.     IF THEGADGET >= 251 AND THEGADGET <= 255 THEN
  1259.       IF TEMP = 1 THEN
  1260.         C$(THEGADGET-250)=Z$
  1261.         B(((THEGADGET-250)*7)-7)=1
  1262.         FOR N=1 TO 6 STEP +1
  1263.           B(((THEGADGET-250)*7)-(7-N))=Z1(N)
  1264.         NEXT N      
  1265.       ELSE
  1266.         CALL _REMOVE
  1267.         CALL _WIPE
  1268.         IF C$(THEGADGET-250)="" THEN
  1269.           C$(THEGADGET-250)="Someone"
  1270.         END IF
  1271.         Z$=C$(THEGADGET-250)
  1272.         Z1(0)=B(((THEGADGET-250)*7)-7)
  1273.         IF Z1(0) = 1 THEN
  1274.           FOR N=1 TO 6 STEP +1
  1275.             Z1(N)=B(((THEGADGET-250)*7)-(7-N))
  1276.           NEXT N
  1277.         END IF
  1278.         CALL _BUTTON3
  1279.         CALL _NUMBER
  1280.         C$(THEGADGET-250)=Z$
  1281.         B(((THEGADGET-250)*7)-7)=Z1(0)
  1282.         IF Z1(0) = 1 THEN
  1283.           FOR N=1 TO 6 STEP +1
  1284.             B(((THEGADGET-250)*7)-(7-N))=Z1(N)
  1285.           NEXT N
  1286.         END IF
  1287.         Z$="Someone"
  1288.         FOR N=0 TO 6 STEP +1
  1289.           Z1(N)=0
  1290.         NEXT N
  1291.         CALL _WIPE
  1292.       END IF
  1293.       IF T = 251 THEN
  1294.         OPEN "O",#1,"SYS:S/LOTTO-CHECK.DATA"
  1295.       END IF
  1296.       IF T = 252 THEN
  1297.         OPEN "O",#1,"SYS:S/LOTTO-CHECK2.DATA"
  1298.       END IF
  1299.       IF T = 253 THEN
  1300.         OPEN "O",#1,"SYS:S/LOTTO-CHECK3.DATA"
  1301.       END IF
  1302.       IF T = 254 THEN
  1303.         OPEN "O",#1,"SYS:S/LOTTO-CHECK4.DATA"
  1304.       END IF
  1305.       IF T = 255 THEN
  1306.         OPEN "O",#1,"SYS:S/LOTTO-CHECK5.DATA"
  1307.       END IF
  1308.       FOR N=0 TO 6
  1309.         PRINT #1,B(N)
  1310.         PRINT #1,B(N+7)
  1311.         PRINT #1,B(N+14)
  1312.         PRINT #1,B(N+21)
  1313.         PRINT #1,B(N+28)
  1314.       NEXT N
  1315.       FOR N=1 TO 5
  1316.         WRITE #1,C$(N)
  1317.       NEXT N
  1318.       CLOSE #1
  1319.       CALL _REMOVE
  1320.       IF TEMP <> 1 THEN
  1321.         CALL _LOGO(42,21,8,4)
  1322.       END IF
  1323.       CALL _BUTTON2
  1324.     END IF
  1325.   WEND
  1326. END SUB
  1327.